SD(4) | Руководство программиста Linux | SD(4) |
ИМЯ¶
sd - драйвер для дисковых накопителей SCSI
ОБЗОР¶
#include <linux/hdreg.h> /* для HDIO_GETGEO */ #include <linux/fs.h> /* для BLKGETSIZE и BLKRRPART */
НАСТРОЙКА¶
Эти блочные устройства именуются согласно следующему формату: sdlp, где l — буква, обозначающая физический накопитель, а p — номер раздела на этом физическом накопителе. Часто номер раздела p бывает пропущен, тогда устройство соответствует полностью всему накопителю.
Файлам устройств дисков SCSI присвоен старший номер 8, а младшие номера устройств рассчитываются как (16 * номер_накопителя) + номер_раздела, где номер_накопителя — это номер физического накопителя в порядке обнаружения, а номер_раздела:
раздел 0 —
накопитель
полностью
разделы 1-4 —
"первичные"
разделы DOS
разделы 5-8 —
"расширенные"
(или
"логические")
разделы DOS
Например, устройство /dev/sda будет иметь старший номер 8, младший 0 и указывать на первый накопитель SCSI в системе; устройство /dev/sdb3 будет иметь старший номер 8, младший 19 и указывать на третий "первичный" раздел DOS на втором накопителе SCSI.
В настоящий момент поддерживаются только блочные устройства. Устройства для прямого доступа (raw) пока не реализованы.
ОПИСАНИЕ¶
Доступны следующие вызовы ioctl:
struct hd_geometry {
unsigned char heads;
unsigned char sectors;
unsigned short cylinders;
unsigned long start; };
Указатель на эту структуру передаётся ioctl(2) в виде параметра.
Информация, возвращаемая в параметре, представляет собой геометрию дискового накопителя как это понимается в DOS! Эта геометрия не является физической геометрией накопителя. Однако, она используется при составлении таблицы разделов накопителя, и требуется для удобства при работе с fdisk(1), efdisk(1) и lilo(1). Если информация о геометрии диска недоступна, все поля структуры равны нулю.
- BLKGETSIZE
- Возвращает размер устройства в секторах. Параметр ioctl(2) должен быть указателем на long.
- BLKRRPART
- Заставляет
перечитать
таблицы
разделов
на диске SCSI.
Используется
без
параметра.
Также поддерживаются операции SCSI через ioctl(2). Если ioctl(2) требуется параметр и он равен NULL, то ioctl(2) завершится с ошибкой EINVAL.
ФАЙЛЫ¶
/dev/sd[a-h]:
устройство
целиком
/dev/sd[a-h][0-8]:
отдельные
блочные
разделы
2012-05-03 | Linux |